package main

import (
	"io"
	"os"

	"github.com/gin-gonic/gin"
)

//中间件的使用 Logger和Recovery
//Logger用于打印日志
//Recovery可以用于捕获错误防止整个进程挂掉
func main() {
	file, _ := os.Create("gin.log")               //创建一个gin日志文件
	gin.DefaultWriter = io.MultiWriter(file)      //将gin的日志写入该文件
	gin.DefaultErrorWriter = io.MultiWriter(file) //将gin的error写入该文件
	r := gin.New()                                //创建一个gin实例
	r.Use(gin.Logger(), gin.Recovery())           //使用Logger中间件和Recovery中间件
	r.GET("/test", func(c *gin.Context) {
		name := c.DefaultQuery("name", "default_name")
		//panic("test_panic") //模拟报一个恐慌，让中间件recovery去捕获这样就不会导致整个服务器程序挂掉
		c.String(200, "%s", name)
	})
	r.Run(":8081")
}
